# Maintainer: Sven-Hendrik Haase <svenstaro@archlinux.org>
pkgname=opensubdiv
pkgver=3.5.0
pkgrel=2
pkgdesc="An Open-Source subdivision surface library"
arch=(loong64 x86_64)
url="http://graphics.pixar.com/opensubdiv"
license=('APACHE')
depends=('ptex' 'intel-tbb' 'libxcursor' 'xorg-xrandr' 'libxinerama' 'libxi')
makedepends=('cmake' 'doxygen' 'glfw' 'glew' 'python' 'python-pygments' 'python-docutils' 'opencl-headers' 'cuda' 'libglvnd')
source=("https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v${pkgver//./_}.tar.gz"
        cuda11.patch
        opensubdiv-tbb2021.patch::https://github.com/PixarAnimationStudios/OpenSubdiv/commit/9079a517.patch)
sha512sums=('7ede8f3f335a6306486d649199117401ab4285d360a3b53a536f25046d94741b5e7eacbc06a55d8a0bd5798c810c1b3cfd7964859f04f95363ad26411310b320'
            '9006762976c15a57d30607189d52d0e620b5024da478dcd41a79a88b350740144a88c1a4f455bfb1b79a9f605e0587c1c828a9b0813301acec8bbb516c2bb292'
            'c65770d3e65a63c88aa1061e10c5dd6be8616a2479bd5f6d3928c97a5895cfa7d0aac455121db7ee610b9731bfbf07c3f8a26e9cd47623cd1baa046d9aa68cdf')
options=(!lto)

prepare() {
  cd "OpenSubdiv-${pkgver//./_}"

  patch -Np1 -i "${srcdir}"/cuda11.patch
  patch -Np1 -i "${srcdir}"/opensubdiv-tbb2021.patch # Support TBB 2021
}

build() {
  cd "OpenSubdiv-${pkgver//./_}"

  cmake \
      -Bbuild \
      -DNO_EXAMPLES=ON \
      -DNO_REGRESSION=ON \
      -DNO_TUTORIALS=ON \
      -DCMAKE_BUILD_TYPE=Release \
      -DOSD_CUDA_NVCC_FLAGS="-gencode=arch=compute_52,code=sm_52 \
                             -gencode=arch=compute_53,code=sm_53 \
                             -gencode=arch=compute_60,code=sm_60 \
                             -gencode=arch=compute_61,code=sm_61 \
                             -gencode=arch=compute_62,code=sm_62 \
                             -gencode=arch=compute_70,code=sm_70 \
                             -gencode=arch=compute_72,code=sm_72 \
                             -gencode=arch=compute_75,code=sm_75 \
                             -gencode=arch=compute_80,code=sm_80 \
                             -gencode=arch=compute_86,code=sm_86 \
                             -gencode=arch=compute_87,code=sm_87 \
                             -gencode=arch=compute_89,code=sm_89 \
                             -gencode=arch=compute_90,code=sm_90 \
                             -gencode=arch=compute_90,code=compute_90" \
      -DCUDA_HOST_COMPILER=/usr/bin/g++ \
      -DCMAKE_INSTALL_PREFIX=/usr

  make -C build
}

package() {
  cd "OpenSubdiv-${pkgver//./_}"

  DESTDIR="$pkgdir/" make -C build install
}
